package com.peak.spring.boot.core.mapper;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * 数据格式化的注解，在PO转VO的时候会自动处理一些数据<br>
 * @author Haley Gao
 *
 */
@Target({FIELD})
@Retention(RUNTIME)
public @interface Format {

	/** 格式化的方式 */
	TransferFormat format() default TransferFormat.NONE;

	/** 一般用于取properties文件时候的key */
	String key() default "";

	/** 支持的格式化的方式 */
	public enum TransferFormat {
		/** 默认的，不格式化 */
		NONE,
		/** 格式化金额，本身为元 */
		MONEY,
		/** 格式化金额，本身为分 */
		MONEY_CENT,
		/** 读取配置文件转换 */
		PROPERTIES,
		/** 加aes密 */
		AES,
		/** 格式化枚举类型，会把value的值取出来 */
		ENUM,
		/** 格式化日期 */
		DATE;
	}
}
